package com.hghivln.service;

import com.hghivln.pojo.domain.CareHistory;
import com.hghivln.pojo.domain.CareOrder;
import com.hghivln.pojo.domain.CareOrderItem;
import com.hghivln.pojo.domain.User;
import com.hghivln.pojo.dto.CareHistoryDto;
import com.hghivln.pojo.dto.CareOrderFormDto;
import com.hghivln.pojo.vo.AjaxResult;
import com.hghivln.pojo.vo.CareHistoryVo;

import java.util.List;

public interface CareService {

    /**
     *  保存或修改病历的接口
     */
    AjaxResult saveOrUpdateCareHistory(CareHistoryDto careHistoryDto, User user);

    /**
     * 根据挂号ID查询病历信息
     */
    CareHistoryVo selectCareHistoryByRegId(String regId);

    /**
     * 根据病例ID查询处方列表及详情
     */
    AjaxResult queryCareOrdersByChId(String chId);

    /**
     * 保存处方及详情信息
     */
    AjaxResult saveCareOrderItem(CareOrderFormDto careOrderFormDto);

    /**
     * 根据处方详情ID删除处方详情【只能删除未支付的】
     * @param itemId 详情ID
     */
    AjaxResult deleteCareOrderItemById(String itemId);

    /**
     * 根据挂号单号完成就诊
     * @param regId 挂号单号
     * @return AjaxResult
     */
    AjaxResult visitComplete(String regId);

    /**
     * 根据病例ID查询处方列表及详情
     * @param chId 病例ID
     * @return List<CareOrder>
     */
    List<CareOrder> selectCareOrdersByChId(String chId);

    /**
     * 根据处方ID查询已支付的处方详情列表
     * @param coId 处方ID
     * @return List<CareOrderItem>
     */
    List<CareOrderItem> selectCareOrderItemByCoId(String coId,String status);

    /**
     * 发药
     * @param itemIds 开诊明细ID
     * @return String
     */
    String doMedicine(List<String> itemIds);
}
